package com.smart.community.work.dto;

import java.time.LocalDate;

import javax.validation.constraints.Email;
import javax.validation.constraints.Pattern;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 员工查询DTO
 * 
 * @author Wu.Liang
 * @since 2025-01-30
 * @version 1.0.0
 */
@Data
@Schema(description = "员工查询DTO")
public class StaffQueryDTO {

    @Schema(description = "页码", example = "1")
    private Integer pageNum = 1;

    @Schema(description = "页大小", example = "10")
    private Integer pageSize = 10;

    @Schema(description = "关键词", example = "张三")
    private String keyword;

    @Schema(description = "状态：1-在职，0-离职，2-待入职", example = "1")
    private Integer status;

    @Schema(description = "物业公司ID数组", example = "1014,1015")
    private Long[] propertyCompanyIds;

    @Schema(description = "员工姓名", example = "张三")
    private String realName;

    @Schema(description = "员工编号", example = "EMP001")
    private String employeeNo;

    @Schema(description = "手机号", example = "13800138000")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String phone;

    @Schema(description = "邮箱", example = "zhangsan@example.com")
    @Email(message = "邮箱格式不正确")
    private String email;

    @Schema(description = "部门", example = "客服部")
    private String department;

    @Schema(description = "职位", example = "客服经理")
    private String position;

    @Schema(description = "入职日期开始", example = "2024-01-01")
    private LocalDate joinDateStart;

    @Schema(description = "入职日期结束", example = "2024-12-31")
    private LocalDate joinDateEnd;

    @Schema(description = "创建时间开始", example = "2024-01-01")
    private LocalDate createTimeStart;

    @Schema(description = "创建时间结束", example = "2024-12-31")
    private LocalDate createTimeEnd;
}
